home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / os20 / wb / toolmanager2_0.lha / ToolManager / Source / prefs / locale.c < prev    next >
C/C++ Source or Header  |  1992-09-26  |  4KB  |  164 lines

  1. /*
  2.  * locale.c  V2.0
  3.  *
  4.  * localization stuff
  5.  *
  6.  * (c) 1990-1992 Stefan Becker
  7.  */
  8.  
  9. #include "ToolManagerConf.h"
  10.  
  11. /* locale string array */
  12. char *AppStrings[]={
  13.     MSG_WINDOW_TOP_GAD_STR,
  14.     MSG_WINDOW_UP_GAD_STR,
  15.     MSG_WINDOW_DOWN_GAD_STR,
  16.     MSG_WINDOW_BOTTOM_GAD_STR,
  17.     MSG_WINDOW_REMOVE_GAD_STR,
  18.     MSG_WINDOW_NAME_GAD_STR,
  19.     MSG_WINDOW_COMMAND_GAD_STR,
  20.     MSG_WINDOW_HOTKEY_GAD_STR,
  21.     MSG_WINDOW_PUBSCREEN_GAD_STR,
  22.     MSG_WINDOW_POSITION_OPEN_LABEL_STR,
  23.     MSG_WINDOW_POSITION_CLOSE_LABEL_STR,
  24.     MSG_WINDOW_LEFTEDGE_GAD_STR,
  25.     MSG_WINDOW_TOPEDGE_GAD_STR,
  26.     MSG_WINDOW_EXEC_GAD_STR,
  27.     MSG_WINDOW_IMAGE_GAD_STR,
  28.     MSG_WINDOW_SOUND_GAD_STR,
  29.     MSG_WINDOW_OK_GAD_STR,
  30.     MSG_WINDOW_CANCEL_GAD_STR,
  31.  
  32.     MSG_MAINWIN_TITLE_STR,
  33.     MSG_MAINWIN_TYPE_GAD_STR,
  34.     MSG_MAINWIN_TYPE_EXEC_CYCLE_LABEL_STR,
  35.     MSG_MAINWIN_TYPE_IMAGE_CYCLE_LABEL_STR,
  36.     MSG_MAINWIN_TYPE_SOUND_CYCLE_LABEL_STR,
  37.     MSG_MAINWIN_TYPE_MENU_CYCLE_LABEL_STR,
  38.     MSG_MAINWIN_TYPE_ICON_CYCLE_LABEL_STR,
  39.     MSG_MAINWIN_TYPE_DOCK_CYCLE_LABEL_STR,
  40.     MSG_MAINWIN_LIST_GAD_STR,
  41.     MSG_MAINWIN_SORT_GAD_STR,
  42.     MSG_MAINWIN_NEW_GAD_STR,
  43.     MSG_MAINWIN_EDIT_GAD_STR,
  44.     MSG_MAINWIN_COPY_GAD_STR,
  45.     MSG_MAINWIN_SAVE_GAD_STR,
  46.     MSG_MAINWIN_USE_GAD_STR,
  47.     MSG_MAINWIN_TEST_GAD_STR,
  48.  
  49.     MSG_MAINWIN_PROJECT_MENU_LABEL_STR,
  50.     MSG_MAINWIN_OPEN_MENU_LABEL_STR,
  51.     MSG_MAINWIN_OPEN_MENU_SHORTCUT_STR,
  52.     MSG_MAINWIN_SAVEAS_MENU_LABEL_STR,
  53.     MSG_MAINWIN_SAVEAS_MENU_SHORTCUT_STR,
  54.     MSG_MAINWIN_ABOUT_MENU_LABEL_STR,
  55.     MSG_MAINWIN_QUIT_MENU_LABEL_STR,
  56.     MSG_MAINWIN_QUIT_MENU_SHORTCUT_STR,
  57.     MSG_MAINWIN_EDIT_MENU_LABEL_STR,
  58.     MSG_MAINWIN_LASTSAVED_MENU_LABEL_STR,
  59.     MSG_MAINWIN_LASTSAVED_MENU_SHORTCUT_STR,
  60.     MSG_MAINWIN_RESTORE_MENU_LABEL_STR,
  61.     MSG_MAINWIN_RESTORE_MENU_SHORTCUT_STR,
  62.     MSG_MAINWIN_SETTINGS_MENU_LABEL_STR,
  63.     MSG_MAINWIN_CREATEICONS_MENU_LABEL_STR,
  64.     MSG_MAINWIN_CREATEICONS_MENU_SHORTCUT_STR,
  65.  
  66.     MSG_MAINWIN_WRITE_ERROR_STR,
  67.  
  68.     MSG_EXECWIN_TITLE_STR,
  69.     MSG_EXECWIN_NEWNAME_STR,
  70.     MSG_EXECWIN_EXECTYPE_GAD_STR,
  71.     MSG_EXECWIN_CURRENTDIR_GAD_STR,
  72.     MSG_EXECWIN_OUTPUT_GAD_STR,
  73.     MSG_EXECWIN_PATH_GAD_STR,
  74.     MSG_EXECWIN_STACK_GAD_STR,
  75.     MSG_EXECWIN_PRIORITY_GAD_STR,
  76.     MSG_EXECWIN_DELAY_GAD_STR,
  77.     MSG_EXECWIN_ARGUMENTS_GAD_STR,
  78.     MSG_EXECWIN_TOFRONT_GAD_STR,
  79.  
  80.     MSG_IMAGEWIN_TITLE_STR,
  81.     MSG_IMAGEWIN_NEWNAME_STR,
  82.     MSG_IMAGEWIN_FILE_GAD_STR,
  83.  
  84.     MSG_SOUNDWIN_TITLE_STR,
  85.     MSG_SOUNDWIN_NEWNAME_STR,
  86.     MSG_SOUNDWIN_AREXX_GAD_STR,
  87.  
  88.     MSG_MENUWIN_TITLE_STR,
  89.     MSG_MENUWIN_NEWNAME_STR,
  90.  
  91.     MSG_ICONWIN_TITLE_STR,
  92.     MSG_ICONWIN_NEWNAME_STR,
  93.     MSG_ICONWIN_SHOWNAME_GAD_STR,
  94.  
  95.     MSG_DOCKWIN_TITLE_STR,
  96.     MSG_DOCKWIN_NEWNAME_STR,
  97.     MSG_DOCKWIN_TITLE_GAD_STR,
  98.     MSG_DOCKWIN_COLUMNS_GAD_STR,
  99.     MSG_DOCKWIN_FONT_GAD_STR,
  100.     MSG_DOCKWIN_ACTIVATED_GAD_STR,
  101.     MSG_DOCKWIN_CENTERED_GAD_STR,
  102.     MSG_DOCKWIN_FRONTMOST_GAD_STR,
  103.     MSG_DOCKWIN_MENU_GAD_STR,
  104.     MSG_DOCKWIN_PATTERN_GAD_STR,
  105.     MSG_DOCKWIN_POPUP_GAD_STR,
  106.     MSG_DOCKWIN_TEXT_GAD_STR,
  107.     MSG_DOCKWIN_VERTICAL_GAD_STR,
  108.     MSG_DOCKWIN_EDITTOOLS_GAD_STR,
  109.  
  110.     MSG_DOCKLISTWIN_TITLE_STR,
  111.     MSG_DOCKLISTWIN_TOOLS_GAD_STR,
  112.     MSG_DOCKLISTWIN_NEW_GAD_STR,
  113.  
  114.     MSG_MOVEWIN_DRAG_GAD_STR,
  115.  
  116.     MSG_FILEREQ_TITLE_FILE_STR,
  117.     MSG_FILEREQ_TITLE_DRAWER_STR,
  118.  
  119.     MSG_FONTREQ_TITLE_STR,
  120.  
  121.     MSG_LISTREQ_TITLE_EXEC_STR,
  122.     MSG_LISTREQ_TITLE_IMAGE_STR,
  123.     MSG_LISTREQ_TITLE_SOUND_STR,
  124.     MSG_LISTREQ_TITLE_PUBSCREEN_STR
  125. };
  126.  
  127. /* misc. data */
  128. struct Library *LocaleBase=NULL;
  129. static struct Catalog *Catalog;
  130.  
  131. /* Get locale strings */
  132. void GetLocale(void)
  133. {
  134.  /* Try to open locale.library */
  135.  if (LocaleBase=OpenLibrary("locale.library",38)) {
  136.  
  137.   DEBUG_PRINTF("Locale: 0x%08lx\n",LocaleBase);
  138.  
  139.   /* Try to get catalog for current language */
  140.   if (Catalog=OpenCatalog(NULL,"toolmanager.catalog",
  141.                           OC_BuiltInLanguage, "english",
  142.                           OC_Version,         2,
  143.                           TAG_DONE)) {
  144.    /* Read in locale language strings */
  145.    char **as=AppStrings;
  146.    ULONG i;
  147.  
  148.    DEBUG_PRINTF("Catalog: 0x%08lx\n",Catalog);
  149.  
  150.    /* Get translation strings */
  151.    for (i=0; i<=MSG_LISTREQ_TITLE_PUBSCREEN; i++, as++)
  152.     *as=GetCatalogStr(Catalog,i,*as);
  153.   }
  154.  }
  155. }
  156.  
  157. void FreeLocale(void)
  158. {
  159.  if (LocaleBase) {
  160.   if (Catalog) CloseCatalog(Catalog);
  161.   CloseLibrary(LocaleBase);
  162.  }
  163. }
  164.